<?php
/**
 * Project: Recipe
 * File: RecipeCategoryAction.class.php
 * Author: Xnfy520@gmail.com
 * Date: 12-5-4
 * Time: 上午9:21
 */


	class RecipeCategoryAction extends CommonAction{

		function index(){

			import("ORG.Util.Page");
			$recipecategory = D('RecipeCategory');

			if(isset($_POST['search'])){
				if(!empty($_POST['key'])){
					switch($_POST['search']){
						case 1 :
							$datas['id'] = $_POST['key'];
							break;
						case 2:
							$datas['name'] = array("like","%{$_POST['key']}%");
							break;
						case 3 :
							$datas['alias'] = array('like',"%{$_POST['key']}%");
							break;
					}
					$total = $recipecategory->where($datas)->count();
					$Page = new Page($total, C('PAGENUM'));
					$show = $Page->show();
					$list = $recipecategory->relation(true)->where($datas)->limit($Page->firstRow.','.$Page->listRows)->order('id')->select();
				}else{
					$this->error('搜索内容不能为空', __APP__.'/RecipeCategory/index');
				}
			}else{
					$total = $recipecategory->count();
					$Page = new Page($total, C('PAGENUM'));// 实例化分页类 传入总记录数和每页显示的记录数
					$show = $Page->show();// 分页显示输出
					$list = $recipecategory->relation(true)->limit($Page->firstRow.','.$Page->listRows)->order('id')->select();
			}

			$this->assign('list',$list);// 赋值数据集

			$this->assign('show',$show);// 赋值分页输出

			$this->display('index');
		}

		/**
		 * 指向添加菜谱分类界面
		 */
		function add(){
			$this->display();
		}

		/**
		 * 添加菜谱分类
		 */
		function insert(){
			$recipecategory = D('RecipeCategory');
			$tmpdir = './Public/Content/tmp/';
			$srcdir = './Public/Content/RecipeCategory/';
			if($data = $recipecategory->create()){
				if($recipecategory->add()){
					if(!empty($data['image'])){
						copy($tmpdir.$data['image'], $srcdir.$data['image']);
						if($dirsrc = opendir($tmpdir)){
							while($files = readdir($dirsrc)){
								if($files!='.' && $files!='..'){
									$pathfile = $tmpdir.$files;
									if(is_file($pathfile)){
										unlink($pathfile);
									}
								}
							}
						}
					}
					$this->success('添加菜谱分类成功', __APP__.'/RecipeCategory/index');
				}else{
					$this->error('添加菜谱分类失败');
				}
			}else{
				$this->error($recipecategory->getError(), __APP__.'/RecipeCategory/add');
			}
		}

		/**
		 *菜谱分类封面上传
		 */
		function uploads(){
			import("ORG.Net.emit_upload");
			import("ORG.Util.emit_image");
			$upload = new upload(array("filepath"=>"./Public/Content/tmp","allowtype"=>array('gif','png','jpg'),"israndname"=>true,"maxsize"=>2000000));
			if($upload->uploadfiles('pic')){
				$img = new image("./Public/Content/tmp");
				$imgname =  $upload->getnewname();
				if($img->cut($imgname)){
					$img->thumb($imgname, 150, 150);
				}
				echo $upload->getnewname();
			}else{
				echo $upload->geterrormsg();
			}
		}

		/**
		 * 指向修改菜谱分类界面
		 */
		function edit(){
			if(isset($_GET['id']) && !empty($_GET['id'])){
				$recipecategory = M('RecipeCategory');
				$data = $recipecategory->find($_GET['id']);
				$this->assign('data', $data);
				$this->display();
			}else{
				$this->error('异常操作');
			}
		}

		/**
		 * 修改菜谱分类
		 */

		function update(){
			if(isset($_POST['id']) && !empty($_POST['id'])){
				$tmpdir = './Public/Content/tmp/';
				$srcdir = './Public/Content/RecipeCategory/';
				$recipecategory = M('RecipeCategory');
				$recipecategoryinfo = $recipecategory->find($_POST['id']);
				if($data = $recipecategory->create()){
					if($recipecategory->save()){
						if($data['image']!=$recipecategoryinfo['image']){
							unlink($srcdir.$recipecategoryinfo['image']);
							copy($tmpdir.$data['image'], $srcdir.$data['image']);
							if($dirsrc = opendir($tmpdir)){
								while($files = readdir($dirsrc)){
									if($files!='.' && $files!='..'){
										$pathfile = $tmpdir.$files;
										if(is_file($pathfile)){
											unlink($pathfile);
										}
									}
								}
							}
						}
						$this->success('修改菜谱分类成功',  __APP__.'/RecipeCategory/index');
					}else{
						$this->error('修改菜谱分类失败');
					}
				}else{
					$this->error($recipecategory->getError());
				}
			}else{
				$this->error('异常操作');
			}
		}

		/**
		 * 删除菜谱分类
		 */
		function del(){
			if(!empty($_POST['actions'])){
				$srcdir = './Public/Content/RecipeCategory/';
				$recipecategory = D('RecipeCategory');
				foreach($_POST['actions'] as $key=>$value){
					$data = $recipecategory->relation(true)->find($value);
					if(empty($data['recipearticle'])){
						$num = $recipecategory->delete($value);
						if(!empty($data['image'])){
							unlink($srcdir.$data['image']);
						}
					}else{
						$this->error('该菜谱分类下还有食谱');
					}
				}
				if($num>0){
					$this->success('删除菜谱分类成功', __APP__.'/RecipeCategory/index');
				}else{
					$this->error('删除菜谱分类失败');
				}
			}else{
				$this->error('请先选择菜谱分类');
			}
		}

		function select(){

			import("ORG.Util.Page");
			$recipecategory = D('RecipeCategory');

			if(isset($_POST['search'])){
				if(!empty($_POST['key'])){
					switch($_POST['search']){
						case 1 :
							$datas['id'] = $_POST['key'];
							break;
						case 2:
							$datas['name'] = array("like","%{$_POST['key']}%");
							break;
						case 3 :
							$datas['alias'] = array('like',"%{$_POST['key']}%");
							break;
					}
					$total = $recipecategory->where($datas)->count();
					$Page = new Page($total, 10);
					$show = $Page->show();
					$list = $recipecategory->relation(true)->where($datas)->limit($Page->firstRow.','.$Page->listRows)->order('id')->select();
				}else{
					$this->error('搜索内容不能为空', __APP__.'/RecipeCategory/index');
				}
			}else{
				$total = $recipecategory->count();
				$Page = new Page($total,10);// 实例化分页类 传入总记录数和每页显示的记录数
				$show = $Page->show();// 分页显示输出
				$list = $recipecategory->relation(true)->limit($Page->firstRow.','.$Page->listRows)->order('id')->select();
			}

			$this->assign('list',$list);// 赋值数据集

			$this->assign('show',$show);// 赋值分页输出

			$this->display();
		}

	}